%% 测试动态补偿极化效应的的算法是否可行
clear all;
clc
%% 1.生产模拟数据：电流数据和干扰数据（一个工频电流干扰、一个中频干扰、一个直流分量）

% 参数设置
fs = 1000;       % 采样频率 (Hz)
N = 10000;       % 数据点数
n = linspace(0, N-1, N);    %  linspace(start, end, n)
t = linspace(0, N/fs, N);   % 时间轴 [0, 10] 秒

% 生成信号
S = sin(20000 * pi * t) + ...      % 高频分量 (10 kHz)
    sin(100 * pi * t + pi/6) + ...   % 中频分量 (50 Hz, 相位偏移 π/6)
    sin(4000 * pi * t + pi/5) + 5;   % 低频分量 (2 kHz, 相位偏移 π/5) + 直流分量
%% 2.前处理
% 2.1去均值：消除直流分量
x_norm = S -mean(S)/N;
% 2.2 加汉宁窗
w = 0.5*(1-cos(2*pi*n/(N-1)));
x_win=x_norm .* w;%元素依次相乘

%% 3 分析(DFT)
% 3.1 傅里叶分析
X = fft(x_win);
% 3.2 频谱幅值计算


% 3.3 频率轴计算

%% 4 干扰分析
% 4.1 干扰检测
% 4.2 干扰参数提取

%% 5.1 消除

% 反向干扰波形数据

% 抵消干扰

%% 画图

% 频率轴
f = (0:N-1)*(fs/N);
f1  = 10000;
% 抑制干扰频率（假设已知干扰为10kHz）
[~, idx] = min(abs(f - f1)); % 找到最接近10kHz的索引
X(idx) = 0;  % 置零

% 逆 FFT
S_filtered = ifft(X);

% 绘制结果
figure; % 创建一个新的图形窗口
subplot(3,1,1);
plot(t,S);

subplot(3,1,2);
plot(t,real(S_filtered));

subplot(3,1,3);
plot(t,S-real(S_filtered));
